﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace SmartFramework.Core.Utils {
	public interface IFileSystem
	{

		// Methods
		void CreateDirectory(string directory);
		void DeleteDirectory(string folder, bool recursive);
		void DeleteFile(string path);
		bool DirectoryExists(string path);
		bool FileExists(string path);
		DateTime GetCreationTime(string path);
		string GetCurrentDirectory();
		string[] GetDirectories(string path);
		string[] GetDirectories(string path, string pattern);
		string[] GetDirectories(string path, string pattern, SearchOption option);
		string GetExePath();
		string[] GetFiles(string path);
		string[] GetFiles(string path, string pattern);
		string[] GetFiles(string path, string pattern, SearchOption option);
		DateTime GetLastWriteTime(string path);
		Stream OpenAppend(string path, int bufferSize);
		Stream OpenRead(string path, int bufferSize);
		Stream OpenReadWrite(string path, int bufferSize);
		Stream OpenWrite(string path, int bufferSize);
		void SetCurrentDirectory(string directory);
		void SetLastWriteTime(string path, DateTime time);

	}
}
